package com.static_;

/**
 * @Author 小闽
 * @Date 2024/9/5 16:23
 * @PackageName: com.static_
 * @ClassName: StaticMethodDetail
 * @Description: 类方法细节
 * @Version 1.0
 */
public class StaticMethodDetail {
    public static void main(String[] args) {
        // 今天啊方法可以直接通过类名调用。
        D.hi();
        // 非静态方法，不能通过类名调用
        // D.say(); 需要先创建对象，再调用。
        D d = new D();
        d.say();
        d.ok();
    }
}

class D {
    private int n1 = 100;
    private static int n2 = 200;
    public void say(){// 非静态方法，普通方法
        System.out.println("这是非静态方法");
    }
    public static void hi(){ // 静态方法
        System.out.println("这是静态方法");
        // 类的静态方法中不可以使用this去访问类中的静态成员。包括使用super去访问
//        System.out.println(this.n1);
//        System.out.println(super.equals());
    }
    // 类方法（静态方法中）只能访问静态变量或静态方法
    public static void hello(){
        // 访问静态成员
        System.out.println(n2);
        // 访问静态方法
        hi();
//        say(); 静态方法中不能够调用非静态的方法
    }
    public void ok(){
        // 可以访问普通成员
        System.out.println(n1);
        // 可以访问静态成员
        System.out.println(n2);
        // 可以访问非静态方法
        say();
        // 可以访问静态的方法
        hello();
        hi();
    }
}